#!usr/bin/env python  
# -*- coding:utf-8 -*-
""" 
@author:robot
@file: title032.py 
@version:
@time: 2023/05/14
HJ25. 数据分类处理

描述
信息社会，有海量的数据需要分析处理，比如公安局分析身份证号码、QQ用户、
手机号码、银行账户等信息及活动记录。

采集输入大数据和分类规则，通过大数据分类处理程序，将大数据分类输出

数据范围：1 <=I,R<=100，输入的整数大小满足0<=val<=2^31-1

输入描述：
一组输入整数序列I和一组规则整数序列R，I和R序列的第一个整数为序列的个数
（个数不包含第一个整数）；整数范围为0~(2^31)-1，序列个数不限

输出描述：
从R依次中取出R<i>，对I进行处理，找到满足条件的I：
I整数对应的数字需要连续包含R<i>对应的数字。比如R<i>为23，I为231，那么I
包含了R<i>,条件满足。

按R<i>从小到大的顺序：
1. 先输出R<i>；
2. 再输出满足条件的I的个数；
3. 然后输出满足条件的I在I序列中的位置索引（从0开始）；
4. 最后再输出I。

附件条件：
1. R<i>需要从小到大排序。相同的R<i>只需要输出索引小的以及满足条件的I，
索引大的需要过滤掉
2. 如果没有满足条件的I，对应的R<i>不用输出
3. 最后需要在输出序列的第一个整数位置记录后续整数序列的个数（不包含“个数”本身）

输入：
15,123,456,786,453,46,7,5,3,665,453456,745,456,786,453,123
5,6,3,6,3,0
输出：
30, 3,6,0,123,3,453,7,3,9,453456,13,453,14,123,6,7,1,456,2,786,4,46,8,665,9,453456,11,456,12,786

"""

while True:
    try:
        s1 = input().split()[1:]
        s2 = list(set(map(int, input().split()[1:])))
        s2.sort()
        rst = []
        for num in s2:
            tmp = []
            for i, sub in enumerate(s1):
                if str(num) in sub:
                    tmp.extend([str(i), str(sub)])
            if tmp:
                rst.extend([str(num), str(len(tmp) // 2)] + tmp)
        print(str(len(rst)) + " " + " ".join(rst))
    except:
        break
